#!/bin/bash

# =====================================================
# MySQL数据库初始化脚本
# 用于创建数据库和用户
# =====================================================

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${GREEN}开始初始化MySQL数据库...${NC}"

# 数据库配置
DB_NAME="qilu_db"
DB_USER="root"
DB_PASSWORD="neo..6555894"
DB_HOST="localhost"
DB_PORT="3306"

# 检查MySQL服务是否运行
echo -e "${YELLOW}检查MySQL服务状态...${NC}"
if ! mysqladmin ping -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASSWORD" --silent; then
    echo -e "${RED}❌ MySQL服务未运行或连接失败${NC}"
    echo "请确保MySQL服务正在运行，并且密码正确"
    exit 1
fi

echo -e "${GREEN}✅ MySQL服务连接成功${NC}"

# 创建数据库
echo -e "${YELLOW}创建数据库 $DB_NAME...${NC}"
mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASSWORD" -e "CREATE DATABASE IF NOT EXISTS $DB_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

if [ $? -eq 0 ]; then
    echo -e "${GREEN}✅ 数据库 $DB_NAME 创建成功${NC}"
else
    echo -e "${RED}❌ 数据库创建失败${NC}"
    exit 1
fi

# 创建表结构
echo -e "${YELLOW}创建数据库表...${NC}"
mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" < mysql_schema.sql

if [ $? -eq 0 ]; then
    echo -e "${GREEN}✅ 数据库表创建成功${NC}"
else
    echo -e "${RED}❌ 数据库表创建失败${NC}"
    echo "请检查 mysql_schema.sql 文件是否存在"
    exit 1
fi

# 验证表是否创建成功
echo -e "${YELLOW}验证数据库表...${NC}"
TABLE_COUNT=$(mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -e "SHOW TABLES;" | wc -l)
TABLE_COUNT=$((TABLE_COUNT - 1))  # 减去标题行

echo -e "${GREEN}✅ 成功创建 $TABLE_COUNT 个表${NC}"

# 显示表列表
echo -e "${YELLOW}数据库表列表:${NC}"
mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -e "SHOW TABLES;"

echo -e "${GREEN}🎉 MySQL数据库初始化完成！${NC}"
echo -e "${YELLOW}下一步: 启动Flask应用${NC}"
echo "cd prediction-backend"
echo "python src/main.py"
